Copyright: Copyright © 1996, 1997 Metaphoric Software


 Seq-303 Help Index

Overview

What is Seq-303?

About Analog Sequencers

The Architecture of Seq-303

The Front Panel

The Sliders	Timebase Buttons

Go To Buttons	Motion Buttons

Glide Slider and Buttons	Mute Button

Loop Buttons	Octave

Channel	Program and Bank

Sequence Buttons	Gate Time

Tempo	Run

Assignable Slider	The Status Bar

Menus

File menu

Edit menu

Tools menu

Patterns menu

Help menu

Application Tips

Working with MIDI Files

Controller Assignments and NRPNs

NRPN Definition Files

The Right Mouse Button

Running Multiple Instances

Using Glide

MIDI Drivers

Overlapping Notes of the Same Pitch

Support

Registration

Technical Support

Copyright and License

Credits


What Is Seq-303?

Seq-303 is an analog sequencer emulator for Windows 95 and Windows NT 4.0. Seq-303 was inspired by many of the great analog sequencers of yore, including the Moog 960, Serge TKB, ARP 1613, Paia 4780, Korg SQ-10, and of course the venerable Roland TB-303.

With Seq-303, you’ll be able to recreate many of the musical styles produced by sequencer artists of the past, as well as modern styles such as techno and house music. All it requires is a PC, a sound card and/or synthesizer, and a little imagination. Thanks to Seq-303’s use of configurable NRPN controllers, you can even use it to get techno-style sounds out of inexpensive ‘consumer’ keyboards.


About Analog Sequencers

An analog sequencer is an electronic module for creating a sequence of control voltages. When used in conjunction with an analog synthesizer, the sequencer permits the creation of automatic, repetitive musical parts, such as bass lines, arpeggios, etc.

A sequencer usually contains a set of knobs or sliders for setting control voltages, arranged in a grid. Each row affects a single control voltage output. The columns of knobs are referred to as stages. As the sequencer plays, it steps through each stage and sets the control voltage for each row according to the position of the knob for that row.

The following photo shows a typical analog sequencer front panel, consisting of 10 stages of 2 rows. By the use of patchcords, each row in the sequence can be ‘programmed’ to control a particular aspect of a sound. For example, one row might control the note’s pitch, and the second, some other parameter such as filter cutoff frequency or volume.

Image courtesy of Kevin Lightner at www.synthfool.com

All sequencers include a clock module, which tells the instrument when to step from one stage to another. By varying the speed of the clock, the tempo of the music changes. While many sequencers can only step through stages in sequential order, from left to right, more advanced sequencers have controls for interacting with the sequence as it plays, by changing the length of the sequence, reversing direction, or skipping stages.

If you’re familiar with most MIDI sequencers, you’ll find this arrangement to be strange and unfamiliar. Good! The whole point of a sequencer like Seq-303 is to stimulate a musician’s creativity by presenting him with a new and different approach to music. Like all musical instruments, the sequencer blends a unique set of capabilities with strict and occasionally maddening limitations. The result is music that can’t be duplicated by any other instrument.


The Architecture of Seq-303

Seq-303 is a 16-stage sequencer. Each stage contains five rows of sliders, arranged as pages of a Windows tab control. The first row in each stage controls pitch, and the second row controls velocity. The last three rows are programmable: they can each send any MIDI continuous controller, or they can send NRPN messages for any synthesizer for which an NRPN definition file is present. All rows are sent to a single MIDI channel.

In addition to the five rows, each stage also has a Glide button, for turning glide (portamento) on for that stage, and a Go To button, which causes the sequencer to immediately jump to that stage. Each row also contains a Gang button, which allows some or all of the sliders in that row to be ganged together.

Loop points may be set with any of the 15 loop buttons located between the stages.

The settings for all 16 stages, along with the loop points, form what is called a sequence. Each sequence can be stored in one of the 16 sequence buttons to the left of the sliders.

The controls at the bottom of the front panel are used to control playback of the selected sequence. The Timebase controls determine the fundamental rhythmic value used for playback. The Motion controls determine the direction of playback. Program and bank controls allow any program from any program bank to be selected. Tempo, octave, and channel controls serve the obvious functions. A glide slider determines the portamento time for notes that have Glide turned on, and a gate time slider sets the relative length of each note. Finally, an assignable slider can be used to send any MIDI continuous controller or NRPN message.


Stages

 Seq-303 has 16 stages, which correspond to the stages on an analog sequencer. Each stage contains a Go To button, a Glide button, five sliders, and five Gang buttons. The five slider/gang button pairs are placed on separate pages of a Windows tab control, which correspond to the physical rows on an analog sequencer.


Rows

Each of Seq-303’s 16 stages contains five rows of sliders. The individual rows may be selected with the tab control surrounding the sliders.

The first two rows are assigned to Pitch and Velocity, while the last three rows may be assigned to any MIDI continuous controller or NRPN message. Assignments are made through the Controller Assignments dialog in the Tools menu. The Controller Assignments dialog may also be accessed by right-clicking anywhere in the sliders area.

The five rows can also be selected by pressing the key combinations Ctrl+1 through Ctrl+5.


The Sliders

The 16 sliders in the middle of Seq-303’s front panel are used to set the values of the MIDI data sent by the program. Each physical slider is actually used to set five different values - one for each row.

The spin control above and to the right of the tab control is used to rotate all 16 stages, on all five rows, to the left or right. This is handy if you have composed a sequence that seems to start off the beat.


Gang Buttons

Two or more sliders on any row may be ganged together by pressing the Gang buttons associated with those sliders. When sliders are ganged, moving one slider will cause all the others to move with it. All of the sliders on the active row may be ganged, unganged, or toggled with commands found on the Tools menu. The operation of ganged sliders is also influenced by the Gang Mode control on the Other Stuff page of the Options property sheet.

The Gang buttons also determine which sliders are affected by the commands in the Patterns menu.


Go To Buttons

The Go To buttons are used to force the sequencer to jump to any of the 16 stages. These can be used either to set a stage from which playback will begin, or they can be used to interact with the music while the sequencer is running.


Loop Buttons

Between the Glide and Go To buttons for each stage are a set of tall, narrow buttons. These buttons are used to set loop points between the stages. As with all controls on Seq-303’s front panel, the loop buttons may be used either as a means to set up static performance parameters, or they can be used on-the-fly during playback, to change the music produced by the instrument.

The Clear Loop Points command, in the Tools menu, will remove all loop points.


Tempo

The Tempo slider is used to set the playback tempo. It will be disabled if an external sync source is selected in the Sync page of the Options property sheet.

The tempo is displayed in the status bar.


Sequence Buttons

The buttons labeled Sequence on the left side of Seq-303’s front panel are used to access 16 different sequences of settings for all of the stage-related controls, including the sliders, gang buttons, and the glide and loop buttons. Each of these sixteen sequences are ‘live’ when selected; in other words, any changes you make to the settings in one sequence will be restored when you select that sequence in the future.

Normally, the sequencer will switch from one sequence to another immediately when a sequence button is pressed. However, if the Change Sequences At Loop Points Only switch is checked, on the Other Stuff page of the Options property sheet, the new sequence will not begin until the current sequence reaches a loop point. This is a more musical way to change sequences.

If the Change Sequence In All Instances switch is checked (also found on the Other Stuff page of the Options property sheet), then changing the sequence will also change the sequence in any other instances of Seq-303.

Right-clicking any sequence button will bring up a menu with a pair of commands for copying sequences. Copy Current Sequence Here will store a copy of the current sequence in that button, and will also select that sequence for playback. Copy This Sequence To Next Empty Slot, will, on the other hand, make a copy of the clicked sequence and place it in the first empty slot, if one exists.

Sequences may also be copied with the Copy and Paste commands on the Edit menu.


Glide Slider and Buttons

The buttons labeled Glide interact with the Glide slider to produce glide (portamento) effects on the selected notes. This only works with synthesizers that recognize MIDI Portamento Time and Portamento On/Off messages (controllers 5 and 65, respectively).

The operation of the Glide buttons is also affected by the TB-303 Style Glide switch, on the Other Stuff page of the Options property sheet. For more information, see the section on Using Glide.


Run

The Run button starts and stops playback. This button is disabled if an external sync source is selected in the Sync page of the Options property sheet.

The Space bar can also be used to start or stop playback.

If the Reset On Start switch, on the Other Stuff page of the Options property sheet, is checked, then playback will always begin with the first stage. Otherwise, playback starts from the current stage.


Timebase

The five buttons in the Timebase section determine the rhythmic value assigned to each note. The three buttons in the upper row select the fundamental time value, while the two buttons in the bottom row can modify this value. For example, if only the eighth note button is selected, then the sequencer will play eighth notes; however, if both the eighth and triplet buttons are selected, it will play eighth-note triplets, etc.

While the Timebase buttons only permit Seq-303 to play in a steady, clocked rhythmic pulse, it is possible to generate other rhythms by setting some of the Velocity sliders to zero.

The operation of the Timebase controls is affected by the Align Timebase To Beat button on the Other Stuff page of the Options property sheet. If this button is checked, the timebase will only change when the current time is a multiple of the current time base. This way, when you change from sixteenth notes to eighth notes (for example), the eighth notes will be aligned to the beat, rather than being (possibly) offset by a sixteenth note.


Motion

The six buttons labeled Motion determine the direction of playback. These controls can be manipulated in real-time to do strange and wonderful things to your music.

The five buttons on the left set the direction of playback. The direction of playback can be forward, backward, back and forth, random, or brownian. When brownian motion is specified, the sequencer randomly chooses the next stage above or below the current stage. The Freeze button causes the sequencer to play a single stage repeatedly.

A switch on the Other Stuff page of the Options property sheet affects playback when the Back and Forth button is selected. If the Play Loop Ends Twice In Back And Forth Mode switch is checked, each note at the end of a loop will be played twice when the Back and Forth button is selected. This makes the length of the loop the same as it would be if the Forward or Backward mode is selected.


Gate Time

The slider labeled Gate determines how long each note will be, relative to the Timebase value. If the slider is set to its maximum value, notes will be long (tenuto), and if it is set to its minimum, they will be very short (molto staccato).

Please note that, when the gate slider is set to its maximum value, notes will overlap slightly. This is designed for use with monophonic analog synthesizers, which may not retrigger under such circumstances. Some polyphonic digital synths may react strangely if two notes of the same pitch overlap; in particular, the AWE-32 sound card will not play the second note. See the section on overlapping notes for more details


Program and Bank

The Program and Bank controls are used to determine the sound played by Seq-303.

The Program control selects the basic program, using zero-based program numbers (the lowest program number is 0). If you are familiar with General MIDI, please note that GM uses one-based program numbering (the lowest program number is 1).

Right-clicking on the Program control will bring up a menu of General MIDI program names.

The two Bank controls are used to set the MSB (left) and LSB (right) of a MIDI bank select message which is sent before each program change. The way in which this message is interpreted by the synthesizer will vary from one instrument to the next. See your synthesizer manual for details.

Bank messages are automatically sent before each program change message. If the bank MSB and LSB are set to None, Seq-303 will not send bank change messages. This prevents conflicts when using instruments that make use of controllers 0 or 32 (the standard assignments for bank select) for some other purpose.

Seq-303 keeps track of a separate program and bank for each of the 16 MIDI channels.


Mute Button

This button mutes the sequencer - that is, turns off all sound without stopping playback. This is handy if you are running multiple instances of Seq-303.


Channel

The Channel control sets the MIDI channel for all output.


The Assignable Slider

The slider above the Tempo control can be assigned to send any MIDI continuous controller or NRPN message. The controller assigned to the slider is displayed above the slider. The assignment can be changed by right-clicking the slider, or through the Options command in the Tools menu.


Octave

The Octave control is used to transpose the sequencer’s output up or down by up to four octaves.


The Status Bar

The status bar displays an explanation of each menu command as it is selected, and also contains displays for tempo and transposition. Right-clicking either of the displays will bring up a context menu for the display.

The status bar which may be hidden or shown with a check box on the Other Stuff page of the Options property sheet.


File menu commands

The File menu offers the following commands:

New	Restore all settings to their default values.
Open	Open an existing sequencer file.
Save	Save an opened sequencer file using the same file name.
Save As	Save an opened sequencer file to a specified file name.
Launch Another	Launch another instance of Seq-303.
Export MIDI File	Export the most recent performance as a MIDI file.
Auto-export	Automatically export each performance as a MIDI file.
Exit	Quit Seq-303.

Seq-303 files are saved with the extension .303. This file type is fully known to the Windows Registry, so files can be opened by double-clicking their icons, or by dragging them to Seq-303.


Edit menu commands

The Edit menu offers the following commands:

Copy	Copy the current sequence to the Clipboard.
Paste	Paste one or all rows from the Clipboard.
Copy MIDI File	Copy the most recent performance to the Clipboard.


Tools menu commands

The Tools menu offers the following commands:

Controller Assignments	Set the MIDI controllers for the controller rows and the assignable slider.
MIDI Output	Select a MIDI output for this document
Comments	Edit comments for the document.
Gang All Sliders	Sets the gang buttons for all sliders.
Toggle Gangs	Toggle the gang buttons for all sliders.
Clear Loop Points	Resets all loop buttons.
All Notes Off	Send an All Notes Off message on all channels.
Reset Controllers	Send a Reset Controllers message on all channels.
Options	Set the sequencer options.


Patterns menu commands

The Patterns menu offers the following commands. Each of these commands sets the value of all ganged sliders in the active row to a new value, based on the selected pattern.

Up	Apply an upward ramp pattern to all ganged sliders.
Down	Apply a downward ramp pattern to all ganged sliders.
Up/Down	Apply an up/down ramp pattern to all ganged sliders.
Down/Up	Apply a down/up ramp pattern to all ganged sliders.
Alternating	Apply an alternating pattern to all ganged sliders.
Invert	Invert all ganged sliders.
Random	Apply a random pattern to all ganged sliders.
Vary	Add a slight random variation to all ganged sliders.
Force to Key	Force all pitches to the specified key.


Help menu commands

The Help menu offers the following commands, which provide you assistance with this application:

Help Topics	Offers you an index to topics on which you can get help.
Tip of the Day	Displays the next Tip of the Day.
Techno Toys Home Page	Access the Techno Toys Home Page via the World Wide Web.
Register…	Register Seq-303 through the World Wide Web.
Enter Registration Code…	Enter the registration key for Seq-303.
About	Displays the version number of Seq-303.


MIDI Output

This is used to select which MIDI output will receive data from the sequencer. Each instance of Seq-303 can play to a different output, or multiple instances can play to the same output.

The MIDI output setting is stored with each Seq-303 document. The Save As Default button saves the current MIDI output name in the Windows registry, where it can be found when an new file is created.


Controller Assignments

This dialog is used to determine which MIDI controller messages are sent by each of the three controller rows, as well as the assignable slider. Any of these controllers may be assigned to an MIDI continuous controller, or to an NRPN controller.

Each of the four controllers has a combo box which lists the names of available controllers, as well as an NRPN button. If this button is not checked, this combo box contains a list of MIDI continuous controllers; otherwise, it contains a list of the NRPNs contained in the current NRPN definition file.

NRPN Instrument tells Seq-303 which instrument you would like to configure for NRPN control by the controller rows and the assignable slider. The setup information for each instrument is stored in an NRPN definition file.

The controller assignments specified in this dialog are saved with the Seq-303 document when it is saved. The Save As Defaults button saves the current settings in the Windows registry; these settings will be used when a new sequencer file is created.


 Comments

This dialog is used to edit the comments stored with the file.

If the button labeled Show Comments On File Open (in the Other Stuff page of the Options property sheet) is checked, then the comments associated with a sequencer file will be displayed when it is opened.


Options

The Options property sheet is used to set the various operating options for the sequencer itself. All of the settings found on these pages are saved in the Windows registry. These settings are used for all instances of Seq-303 and other Techno Toys.

Sync

MIDI Files

Transpose

Metronome

Other Stuff


Sync

This page is used to set Seq-303’s synchronization options. These options will affect all instances of Seq-303 as well as any other Techno Toys that may be running.

The Sync Input setting determines where Seq-303 will look for its clock input. If this is set to Internal, Seq-303 will provide its own clock, which can be controlled with the Tempo slider and Run button. If this is set to any other value, the program will wait for a MIDI clock to appear at the specified input, and the Tempo and Run controls will be disabled.

Sync Outputs determines which outputs will receive MIDI clock signals when Seq-303 is set to Internal sync. If you are slaving other devices, such as a drum machine or another sequencer, to Seq-303's clock, the corresponding outputs should be checked here.

The sync settings can be also be adjusted by right-clicking on the tempo display in the status bar.


MIDI Files

The controls on this page set the options for MIDI file export. These options affect MIDI files exported to disk, as well as files copied to the Clipboard.

Resolution is the number of ticks per beat (or ‘pulse per quarter note’ - PPQN) used in the file. Most sequencers should be able to handle any resolution, but some programs may require a specific PPQN.

MIDI File Format determines the file format used in the file. Again, most programs should be able to read type 0 or type 1 files, but some more limited programs may require a specific format. If multiple instances are being recorded, and if two or more MIDI outputs are in use, the program will not create type 0 files, since they cannot carry port information. When type 1 files are created, the output from each Techno Toy is stored on a separate track.

Auto-export causes Seq-303 to generate a new MIDI file each time you stop the sequencer. This is designed to allow you to easily save performances, without interrupting the creative groove. The MIDI files are named with the date and time of the performance.

The Folder control determines where auto-exported files will be placed.


Metronome

The Metronome page sets the parameters for Seq-303’s optional metronome.

The metronome can be turned off, or it can sound on the PC’s internal speaker, or on a MIDI drum note. If a MIDI drum note is used to play the metronome sound, then the controls in the lower half of the Metronome page will determine the characteristic of that sound.


Transpose

The controls on the Transpose page allow Seq-303 to be transposed from an external MIDI keyboard (or sequencer, guitar, etc.) The output is transposed relative to C4 (MIDI note 60). If C4 is played on the keyboard, no transposition will occur; if C5 is played, the pitch will be shifted up by an octave, etc.

The Transpose Input control determines which MIDI input will provide transposition. If this is set to None, transposition is disabled.

The Channel control determines which channel will be used for transposition. If this is set to All, notes on any channel will transpose the pitch; otherwise, only notes received on the specified channel will be used. This is especially handy if you wish to transpose from a multi-channel device such as a sequencer.

The Note control determines which note will be used for transposition if more than one note is playing on the transpose channel. This can be the lowest note played, the highest note, or the last note played.

The 16 checkboxes on the right side of this page allow transposition to be enabled or disabled for any specific output channel. Normally, only channel 10 (the General MIDI drum channel) will be disabled; however, you may disable transposition on any other channels if you wish.

The current transposition is displayed in the status bar. The transpose settings can be also be adjusted by right-clicking on the transposition display in the status bar.


Other Stuff

This page contains several controls that didn’t fit on the other pages.

The Gang Mode controls determine the behavior of ganged sliders. If relative is selected, moving one slider will cause all ganged sliders to move by the same amount as the selected slider. If Absolute is selected, all ganged sliders will immediately jump to the same value as the moved slider.

The Lock MIDI switch determines what Seq-303 will do with the various MIDI inputs and outputs when another app is activated. If this switch is checked, then Seq-303 will not release the ports when the other app is activated; otherwise, the ports will be freed for use by other programs any time another program is activated, and if Seq-303 is not playing or waiting for a sync signal. The setting you choose for this switch will depend on what other programs are running, how they work, and the nature of your MIDI drivers.

If the button labeled Show Comments On File Open is checked, then the comments associated with a sequencer file will be displayed when it is opened.

The Status Bar switch hides or shows the status bar.

If Reset on Start is checked, playback will always begin from the first stage. If this is not checked, playback starts from the current stage.

If the Play Loop Ends Twice In Back And Forth Mode switch is checked, each note at the end of a loop will be played twice when the Back and Forth button is selected. This makes the length of the loop the same as it would be if the Forward or Backward mode is selected.

The TB-303 Style Glide switch selects an alternate glide mode patterned after the Roland TB-303’s glide function. See the section on using glide for more details.

If this Align Timebase to Beat button is checked, the timebase will only change when the current time is a multiple of the current time base.

If the Change Sequences At Loop Points Only switch is checked, sequences selected with the sequence buttons will not begin immediately; instead, the current sequence will continue playing until a loop point is reached.

If the Change Sequence In All Instances switch is checked, then changing the sequence in one instance of Seq-303 will cause it to change in all other running instances as well.

The No Bitmap Caching switch is used to correct a problem with certain video cards. This prevents Seq-303 from storing bitmaps for the various buttons in the program. If your system does not display buttons properly, check this box; otherwise, leave it unchecked. Checking this box will solve this problem, but will cause the buttons to draw more slowly.


Force to Key

This command is used to adjust all of the notes in the current sequence to match the notes of a particular chord.

This dialog contains controls for setting the root of the chord, as well as the type of chord. After you click OK, each note in the current sequence will be replaced, if necessary, with the nearest note from the chord.

This feature is especially useful after randomizing pitches using the Random command in the Patterns menu.


Working with Multiple Instances
Running Multiple Instances

You can run more than one copy, or instance, of Seq-303 simultaneously. All instances of Seq-303 and any other Techno Toys will be synchronized automatically.

To launch another copy of Seq-303, select either of the Launch Another commands from the File menu. Additional instances may also be launched from the Windows Explorer, the command line, etc. If existing instances of Seq-303 are running, the new instances will not begin playback until the others are stopped and restarted.

The music produced by all instances of Seq-303 will be recorded together, and will be placed in the same MIDI file when exported. The data from each instance will be placed on a separate track, if a format 1 file is specified.

All of the options accessed through the Options property sheet are shared by all instances of Seq-303. For example, all instances will sync to the same MIDI input, or to a shared internal clock; all instances will be transposed together if a transpose input is specified, etc. Any parameters set outside the Options sheet, on the other hand, are handled separately for each instance. This means that each instance may have its own MIDI output, channel, etc.

Note that, when Seq-303 is synchronized to an external source, it must continually ‘listen’ to the sync input and be ready to play as soon as it receives a MIDI start command. For this reason, all inputs and outputs are ‘locked’ by Seq-303 whenever external sync is used, regardless of the setting of the Lock MIDIswitch.


Controller Assignments and NRPNs

The Controller Assignments dialog allows you to assign any of the controller rows or sliders to standard MIDI continuous controller, or to a Non-Registered Parameter Number (NRPN). These are used to control instrument-specific sound parameters, which do not fall under the MIDI standard itself. (Additional standards have been created by individual manufacturers to define specific NRPNs, but these are not recognized by all instruments.)

Seq-303 stores information about the NRPN definitions for different instruments in NRPN Definition Files. The active NRPN definition is selected in the Controller Assignments dialog, and is saved with each Seq-303 file. Note that many instruments may have more than one associated NRPN definition. These may be used to provide different ranges on specific parameters, or to access smaller, more manageable subsets of an instrument’s available parameters.

The following describes how to optimize Seq-303 for use with specific instruments. Please bear in mind that this is far from exhaustive; it just gives tips for a few popular instruments. The ultimate guide to making the most of your instruments must be their manuals, along with your knowledge of MIDI.

General MIDI

General MIDI instruments do not make use of NRPN messages, so you will want to assign all of your controller to MIDI continuous controllers. General MIDI instruments must support the following controllers:

• Controller 1 (Mod wheel)

• Controller 7 (Volume)

• Controller 10 (Pan)

• Controller 11 (Expression)

• Controller 64 (Sustain)

Roland GS-Compatible

MC-303, All Sound Canvases, Some Yamaha TG’s, many others.

The Roland GS standard has been followed by most of Roland’s instruments since 1993. GS is an extension to General MIDI - all General MIDI protocols are supported, along with enhanced program banks and NRPN messages. This standard defines a handful of synthesizer parameters, along with 7 parameters for each defined drum, for a total of over 500 parameters. The No Drums version of the NRPN definition defines only the synthesizer parameters.

Yamaha XG

Yamaha soundcards, PSR keyboards, many synthesizers

This is Yamaha’s answer to GS. XG is a superset of GS - it supports all GS messages, as well as several additional parameters.

Some parameters that XG provides NRPN messages for can also be controlled from standard continuous controller messages. For example, the NRPN messages for filter frequency and resonance are duplicated by the Brightness (CC 74) and Harmonic Content (CC 71) controllers. In such cases, you should use the continuous controller messages, since they require less bandwidth.

Syntecno TeeBee

This European analog synth allows most of its front panel parameters to be controlled from MIDI continuous controllers, including glide on/off. However, the default parameter assignments do not match the standard MIDI controller assignments, so the names that appear in Seq-303’s controller displays will not be accurate.

A more serious problem is that the TeeBee’s default slide (glide) on/off controller is MIDI controller 0, which is the standard value for the Bank Select MSB message. Seq-303 sends MIDI controller 65 for glide on/off. This means that the TeeBee will not recognize glide messages from Seq-303 when both are in their usual configurations. This can be solved either by reassigning the TeeBee’s slide parameter to controller 65 (sing the procedure described in the TeeBee’s manual), or by setting both Program Bank controls to None, and then using one of the controller rows to send controller 0 messages.

The TeeBee can also convert controller messages to analog voltages for use with voltage-controlled equipment. This lets you use Seq-303 to directly control many analog synthesizers.


Working with MIDI Files

Seq-303 provides two ways to pass MIDI data to other sequencers. MIDI files can be exported by the program, or they can be placed in the Windows Clipboard for direct access by sequencers (such as Cakewalk) that support this operation.

In both cases, the MIDI file that is exported is a recording of the most recent performance from all instances of the program. Seq-303 automatically records all MIDI data it sends during playback, and then converts this to a MIDI file when the Stop button is pushed. At this point, the file can be exported to a MIDI file by selecting the Export MIDI File option from the File menu, or it may be copied to the Clipboard by selecting Copy MIDI File from the Edit menu.

When multiple instances of Seq-303 (or any other Techno Toys) are running, the output from each is recorded independently and placed on a separate track in the MIDI file.

If the Auto-export option, in the File menu, is checked, the file will automatically be exported to a disk file each time playback stops. The file will be named with the time and date of the recording.

All options for the MIDI file export procedure, including the file format, resolution, and the folder for auto-export, are set in the MIDI Files page of the Options property sheet (accessed through the Tools menu).


NRPN Definition Files

Seq-303 has the ability to send all of its controller messages as NRPN (Non-Registered Parameter Number) messages. This portion of the MIDI spec allows synthesizer manufacturers to place specific instrument parameters under the control of an external device. Because there is no standard for the meaning of specific NRPN messages (this is why they are called ‘non-registered’), any program that deals with NRPN messages must have some way of configuring itself to send messages to specific instruments.

In Seq-303, this is accomplished with the use of NRPN definition files. These files are simple text files, similar in form to Windows .INI files, with the extension .NRPN. On start-up, Seq-303 reads all the NRPN files located in the \Program Files\Common\Files\Techno Toys folder, and makes these available though the NRPN Instrument control in the Controller Assignments dialog.

Only a few NRPN files are included with Seq-303. For other instruments, you can create your own NRPN definition files using information found in your instrument's manual, along with the NRPN Definition Files format description.


NRPN Definition File Format

Each NRPN definition contains a single section, labeled [NRPN List]. This is followed by the following mandatory entries:

Long Name = : The name of the instrument, as displayed by Seq-303.

Short Name = : A shorter version of the name (8 characters maximum).

Parameter Count = The number of NRPN definitions in the file. Note that you don't have to include a definition for every parameter supported by the instrument.

Use LSB = : This is set to 1 if the instrument sends two bytes of data for each NRPN message, or 0 if not. This can be determined by checking the range of values supported by each NRPN message. If all values have a range that is between 0 and 127, Use LSB should be set to 0. If any parameter has a greater range, this should be set to 1.

Offset = : This is the ‘center value’ of the range of parameter values. This may be tricky to determine for some instruments. In most cases it will be zero; however, if the instrument supports a range of values that goes below zero, it will probably require an offset. This is generally equal to the negative of the lowest value supported.

These entries are followed by entries for the individual parameters. These entries are of the form

x = MSB, LSB, Name, Short Name, Low, High

where

x is the parameter number (from 0 to 1 less than the entry for Parameter Count).

MSB is the most significant byte of the NRPN number for the parameter.

LSB is the most significant byte of the NRPN number for the parameter.

Name is the name of the parameter.

Short Name is an abbreviated name for the parameter (no more than 2 words of 4 characters each).

Low is the lowest value in the range.

High is the highest value in the range.

The two Short Name entries, in the header and in the individual parameter entries, are for use by future programs which may not have the screen real estate needed to display full names.


Using Glide

Seq-303 has an unusually powerful glide feature, which allows glide to be activated independently for each note in a sequence. This feature is inspired by the Glide button on Roland’s TB-303. Because of the way glide is implemented in MIDI, there are some important things to consider when using it.

The most important thing to bear in mind is that many synthesizers, including most sound cards, do not support glide. In this case, there is no good way for Seq-303 to create glide in the instrument. If you are not sure if your instrument supports glide, check the MIDI implementation chart in the back of the owners’ manual to see if it recognizes controller 5 (portamento time) and 65 (portamento on/off). Fortunately, instruments that follow the Roland GS and Yamaha XG standards recognize these commands.

Even instruments that support glide may require some fiddling to achieve the results you want. Because glide is an inherently monophonic effect, polyphonic instruments often produce strange results when glide is used. For this reason, you should see if your instrument has some sort of mono or single-voice mode if you wish to use glide.

Seq-303 has two glide styles, which can be selected from the Other Stuff page of the Options property sheet. In the default mode, clicking a glide button causes glide to occur at the beginning of the note for which glide is activated. However, if the TB-303-Style Glide switch is checked, then glide affects the note played after the note for which glide is selected. Further, selecting TB-303-style glide causes the first note (the note for which glide is activated) to be lengthened to its full value, regardless of the setting of the Gate Time slider. This results in the more natural glide style that is characteristic of the TB-303’s sound.

Confused? This is understandable. Perhaps the following diagram will help.

 In this diagram, three notes are displayed, with glide activated for the second note. In the normal glide mode, glide occurs between the first and second notes. However, in TB-303 mode, the second note is extended to the beginning of the third, and glide occurs between the second and third notes.

The TB-303 style was added in version 2.0 at the request of several users. Because the original style was also useful, we decided to keep both.


The Right Mouse Button

Seq-303 lets you use the right mouse button to set many of the program’s operating features. In general, if there are any options that influence the operation of a particular control, right-clicking the control will bring up a context menu or dialog for that control.

For example, right clicking the Program controls will bring up a menu from which you can select any General MIDI program by name. Similarly, right-clicking the Tempo display in the Status Bar will bring up a menu where you can change the sync source and metronome.

All of the commands associated with the right-mouse menu commands are described elsewhere in the help system, in the sections on the controls they affect. Most are also duplicated in other parts of Seq-303’s user interface, such as the Other Stuff page of the Options property sheet.


MIDI Drivers

Drivers (also called device drivers) are small programs that are used to connect hardware devices to larger application programs. Because all Windows 95 MIDI drivers share a standard programming interface, drivers allow programs such as Seq-303 to work with a wide variety of MIDI cards from different manufacturers. Without the use of drivers, Seq-303 would need to have special code for each different type of MIDI card on the market - a situation too frightening to even contemplate.

MIDI drivers are a blessing to software developers, but they often seem like a curse to musicians, because there are often problems with them. Many MIDI drivers simply do not work properly, some rely on unusual interpretations of Microsoft’s specs, and others were designed without the capabilities that musicians need. Then there's the Microsoft MIDI Mapper - a strange driver designed for multimedia applications that can add unnecessary complications to the musician's life. The following sections may shed some light on these issues.

Single- and Multi-Client Drivers

Virtual MIDI Drivers

The MIDI Mapper

Software Synthesizers

Common Driver Problems


Single- and Multi-Client Drivers

One of the biggest differences between various MIDI drivers is the number of applications that can access the driver at any time. In the geek world, such applications are referred to as clients; so MIDI drivers are referred to a either single-client, or multi-client drivers, based on the number of client applications that can access, or open, the driver simultaneously.

Single-client drivers are a royal pain in an advanced music system, because most of us want to be able to use several music programs simultaneously. Multi-client drivers are much more hospitable. Unfortunately, most drivers can only talk to a single client, including the Microsoft MIDI Mapper, and most Creative Labs drivers. Most virtual drivers are multi-client.


Virtual MIDI Drivers

Virtual MIDI drivers are intended as a solution to two shortcomings in the standard Windows MIDI protocol. Their primary function is to allow MIDI data to be routed directly from one application to another. An additional, and welcome, feature of most virtual MIDI drivers is that they are multi-client drivers.

A virtual driver acts like a pair of MIDI ports - one in, one out - connected externally by a patch cord. Data from any application connected to the output will appear at the input, which may be opened by a different application.

Virtual MIDI drivers can be obtained from a number of sources. Some of the most popular are freeware and shareware drivers, such as Hubi’s Loopback, MultiMid, and MidiMux, while others are distributed as part of larger software packages such as Sonic Foundry’s Sound Forge and Turtle Beach’s Quad. Some drivers only provide a single virtual patch cord, while others may allow four or more input/output pairs, allowing for extremely complex patching networks.

One advantage of virtual MIDI ports over a pair of physical ports connected with a cable is that there is none of the delay which results from the limited bandwidth of the MIDI interface. This means bandwidth between two applications is for all practical purposes unlimited. On the downside, some virtual drivers may not be able to handle sysex messages, especially large messages.

By combining virtual MIDI drivers with MIDI thru software, it is possible to provide multi-client support to single-client drivers. The multi-client driver funnels the data from several apps into a single virtual cable, which then can be connected to another driver with the thru program. The following diagram illustrates this concept:

Some virtual drivers are designed to provide multi-client access to a single-client driver. This works much like the arrangement described above, except that there is no need for a MIDI thru application. MultiMid is a good example of this kind of driver.


The MIDI Mapper

The MIDI Mapper is a virtual MIDI driver, created by Microsoft, that is intended to solve the problem of playing General MIDI sequences on non-GM devices. It is designed specifically for use by multimedia applications, which usually assume that the sound hardware complies with General MIDI. It is less important in systems used for music composing and production, though some knowledge of its operation is mandatory for anyone who wishes to produce (M)PC-compatible MIDI files.

One common misconception is that the MIDI Mapper, which made its debut in Windows 3.1, is no longer present in Windows 95. Au contraire; the MIDI Mapper is still there; it is just presented differently. MIDI maps now are stored in a different format, and edited with a different program. The hated MIDIMAP.CFG file has been replaced with a new file format, with the extension .IDF, for Instrument Definition File. These files may be edited with the program IDFEDIT.EXE, a utility from Microsoft which is not included with Win95, though it can be obtained at no charge from their website (http://www.microsoft.com). Multiple .IDF files can be stored in the Windows\Config directory, and one of these may be activated by clicking the Add New Instrument button in the MIDI tab of the Multimedia applet in the Control Panel.

In principle, the MIDI Mapper is quite ambitious. It accepts MIDI input from any application, just like any other MIDI output device, and then routes that data to other MIDI devices. In doing so, it optionally remaps program change messages, note numbers, and velocities. By properly setting up the remapping features, it is possible to make a non-standard instrument respond like a General MIDI synthesizer.

Data passing through the MIDI Mapper goes through a full hierarchy of ‘maps’ before being transmitted at the relevant outputs. The most important map in the MIDI Mapper is the ‘Setup’, which is also referred to as a ‘channel map’. In the Setup, each of the 16 MIDI channels is mapped to a MIDI channel on a particular output port. Each channel is also assigned to a particular Patch Map and Key Map (described below).

The Patch Maps serve two purposes: to remap MIDI program numbers to a particular device, and to scale MIDI volume control data by a specific percentage. This is intended primarily for use with older instruments, such as the MT-32, whose program numbers do not match the General MIDI program assignments.

The Key Map is used to remap Note On, Note Off, and Key Pressure messages to new values. This is primarily intended for two purposes: to map drum sounds from a non-GM device to General MIDI drum mappings, and to shift octaves for programs with non-standard octave settings.

One serious failing of the MIDI Mapper is the fact that it is a single-client driver. Because it can only be accessed by a single program at a time, it is difficult to use effectively in a pro or semi-pro environment, which may rely heavily on the ability to run multiple MIDI apps simultaneously. For this reason, it is best not to rely on it in such environments, other than when auditioning songs with Media Player.


Software Synthesizers

Software synthesizers utilize the power of your system’s CPU to generate musical sounds. This approach allows music to be created without the use of a hardware MIDI synthesizer.

Although software synthesis is a promising technology and probably is the wave of the future, there is currently a problem with this approach. From the musician’s standpoint, the long delay between the receipt of a note-on command and the onset of sound (in the range of ¼ second on a medium-speed Pentium) makes many software synths unsuitable for serious applications. Another problem is that they eat CPU resources. If you have a slower machine, or are running an extremely powerful and/or resource-hungry software synth, compromises may have to be made.


Common Driver Problems

MIDI Input Driver Gives Error Message on Start-up Or Does Not Work

These problems may occur on certain MIDI drivers if they are receiving data from a connected MIDI device when Windows is booting. This could happen if, for example, your keyboard controller continuously transmits active sensing messages, or if an external sequencer or drum machine is transmitting MIDI clock messages (which some do even when they are not playing). If you suspect this may be occurring in your system, try turning off or disconnecting any MIDI gear connected to your system’s MIDI inputs

Stuck Notes

Many of the early SoundBlaster drivers, especially SB 16 drivers, have a serious failing: they cannot reliably receive MIDI data when sending MIDI data. They will very often lose track of incoming data when playing a MIDI sequence, and will occasionally miss a note off message. The result is a stuck note.

There is little that can be done about this problem. Fortunately, the Windows 95 drivers provided for the SoundBlasters are somewhat better than the original Windows 3.1 drivers.

The Ten-Output Barrier

In Windows 95 it is impossible to have more than 10 MIDI inputs or outputs installed (11 outputs if the MIDI Mapper is counted).This means that if you are using, say 2 sound cards and a four-output virtual MIDI driver, you will be right up against that limit.

Fortunately, you can enable and disable MIDI devices in the Control panel’s Multimedia Advanced page, so you can have more that 10 outputs present in the system (but not activated) simultaneously.


Overlapping Notes of the Same Pitch

If you set the gate time at or near its highest value, then notes will overlap slightly. This can be a useful effect, especially on monophonic synthesizers, but it can cause somewhat unpredictable results on polyphonic instruments. In particular, if two notes of the same pitch overlaps, things can get strange. Here’s why.

In MIDI, the beginning and end of a note are handled by two distinct messages. This is a reasonable approach, but it has a lot of side effects. For example, if a note is started with a note-on message, and if the corresponding note-off message is somehow lost, that note will never turn off. Similarly, if an instrument receives two note-ons of the same pitch, followed by a note-off for that pitch, it is difficult to determine which note should be turned off. There is no standard for this, so various instruments handle this in different ways. In our testing, we found three different types of behavior in these circumstances:

• The AWE-32 simply ignores any overlapping notes, and plays nothing after the first note.

• The Turtle Beach Maui turns off the most recently started note, resulting in a percussive, clipped sound.

• The SoundBlaster 16 and Ensoniq SoundScape associate note-ons and note-offs in order, and therefore give each note its full value.

Which is right? We can’t say (although the last seems the most logical to us). However, all of these effects can be musically useful. The point is this: If you make use of this effect, don’t be surprised if your music sounds radically different from one instrument to the next, even if both instruments conform to General MIDI, or if they come from the same manufacturer.


Registering Seq-303

Registration fee: $34.95

If you find Seq-303 to be useful, you should register the program. If you do not register Seq-303, its MIDI file and synchronization capabilities will be disabled after 30 days or 25 executions, whichever comes last.

Registration also has other benefits. Registered owners are entitled to free technical support, and to free upgrades for all future versions of Seq-303. We also plan to create a mailing list to let Seq-303 users share tips, and to keep you informed of bug fixes, upgrades, and new products. Most important, however, is that your registration fees will allow us to continue development of Seq-303 and other Techno Toys.

If you would like to register Seq-303, you can do the registration online on the Internet at http://www.shareit.com/programs/100399.htm. Alternatively, you can go to http://www.shareit.com and enter the program number there: 100399.

Important: Before you register, please be sure to obtain your registration code, using the Register option under the Help menu. This number is used to generate the registration key which will unlock your copy of Seq-303.

If you do not have access to the Internet, you can register via phone, fax or postal mail. Please print out the following form, and fax or mail it to:

ShareIt! - Reimold & Schumann Internet Services GbR

Habsburgerring 3

50674 Koeln

Germany

Phone:	+49-221-2407279

+49-172-7229837

Fax:	+49-221-2407278

E-Mail:	register@shareit.com

If you are located in the USA, you can also pay by sending a check or cash to the following address:

ShareIt! Inc.

P.O. Box. 97841

Pittsburgh, PA 15227-0241

(Please send only checks drawn on US-American banks to this

address.)

Registration form for Seq-303

Program No.: 100399

Last name: ___________________________________

First name: ____________________________________

Company: ____________________________________

Street and #: ______________________________________

City, State, postal code: ________________________________

Country: _______________________________________

Phone: _____________________________________

Fax: ________________________________________

E-Mail: ______________________________________

Registration Code: ______________________________________

How would like to receive the registration key?

e-mail 	- fax	- postal mail

How would you like to pay the registration fee of $34.95?

credit card - wire transfer - EuroCheque - personal check - money order - cash

Credit card information (if applicable)

Credit card: Visa - Eurocard/Mastercard - American Express - Diners Club

Card holder: ________________________________

Card No.: ___________________________________

Date of Expiration: ___________________________________

Signature and date: ____________________________________________


Technical Support

All technical support is handled via email only. Send email to support@technotoys.com.

If you have a bug to report, we prefer that you use the Techno Toys Support Wizard, available from our web site, to prepare the bug report. This program will examine your system’s registry and MIDI setup to provide us with information that may be useful in troubleshooting the problem.

If you prefer to create bug reports manually, please include the following information:

• Version number of the program (from the About box).

• Name, manufacturer, and model number of your sound card.

• Name, manufacturer, and model number of your MIDI instruments (if relevant).

• MIDI driver information, including version numbers and manufacturers.

• Name and version number of any other MIDI software you use.

Please note that, due to the tremendous number of MIDI instruments that are available, we cannot promise that Seq-303 will work as expected with all of them. We are interested in hearing about issues and problems when using Seq-303 with any sound card or synthesizer, but we cannot guarantee that such problems will be resolved.

Please see the Techno Toys Home Page for advanced technical support options, including history lists, answers to frequently asked questions, and bug report forms.

Important Notice Regarding Beta and Preview Software

In the past few years, there has been a disturbing tendency among certain software companies to release ‘beta’, ‘preview’, or ‘early experience’ versions of their products to the public at large. The reasons for this are not entirely clear, but the results are: millions of users end up with unreliable systems due to bugs in this software.

If these bugs only affected the program in question, this would not be too bad. However, in today’s age of component-based operating systems, beta programs frequently overwrite system components with their own ‘improved’ (read: buggy) versions, which can cause problems in other programs. Many times, the situation becomes so confusing that the only solution is to re-install Windows 95.

For this reason, we are unable to offer technical support if you have any ‘beta’, ‘preview’, or ‘early experience’ software installed on your system, including operating systems , system enhancements, browsers, or games.


Copyright and License

Copyright

Seq-303 Copyright © 1996-1997 by Metaphoric Software

All rights reserved.

License Agreement

You should carefully read the following terms and conditions before using this software. Your use of this software indicates your acceptance of this license agreement and warranty.

Distribution

You may use Seq-303 for a trial period of thirty days, at no cost to you, to determine if it meets your needs. If you wish to continue to use Seq-303 after the trial period, you are expected to register it and pay the applicable registration fee.

You are hereby licensed to make as many copies of the evaluation version of this software and documentation as you wish, and to distribute the evaluation version of the software and documentation in its unmodified form via electronic means.

Registered Version

Each registered copy of Seq-303 may be installed on as many computers as necessary to do your work, with the following restriction: each registered copy may only be used by one person at a time.

Seq-303 may be used to create an unlimited number of royalty-free musical compositions. Metaphoric Software makes no claim to any rights or ownership of music created with this program.

All rights not expressly granted in this license agreement are reserved entirely to Metaphoric Software.

Modifications and Disassembly

You may not modify or disassemble Seq-303, nor distribute any modified or disassembled versions of Seq-303.

Disclaimer of Warranty

THIS SOFTWARE AND THE ACCOMPANYING FILES ARE SOLD ‘AS IS’ AND WITHOUT WARRANTIES AS TO PERFORMANCE OF MERCHANTABILITY OR ANY OTHER WARRANTIES WHETHER EXPRESSED OR IMPLIED. Because of the various hardware and software environments in which Seq-303 may be used, NO WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE IS OFFERED.

Good data processing procedure dictates that any program be thoroughly tested with non-critical data before relying on it. The user must assume the entire risk of using the program. ANY LIABILITY OF THE SELLER WILL BE LIMITED EXCLUSIVELY TO PRODUCT REPLACEMENT OR REFUND OF PURCHASE PRICE.


Cracking Seq-303

If you want to crack Seq-303’s minimal security, there is nothing I can do to stop you. However, I hope you will read the following first.

I have a lot planned for Seq-303. In addition to several new features, I hope to develop an entire line of fully integrated music creation tools. I call them Techno Toys. These programs will provide an inexpensive and simple alternative to the feature-laden mega-sequencers most companies are selling today. If you’ve ever synced a TB-303 to a drum machine and an arpeggiator, you can probably guess where this is all headed... but for now, my lips are sealed.

In order for me to continue development on Seq-303, I need to make a certain amount of money. I don’t want to become rich; I just want to pay for my time. In order to do that, I need you to register. It doesn’t matter to me if you are a ‘starving artist’ or a yuppie hobbyist. If I don’t make enough money, I cannot afford to continue developing the Techno Toys. It’s as simple as that.

Thanks for reading this. I look forward to our continuing relationship: you making music, and me cranking out code.

Jim Johnson

Metaphoric Software


Credits

Seq-303 was designed and programmed by Jim Johnson.

Special thanks to:

Grant Davies, Patrice Boily, and Tony Mann, for many helpful and encouraging suggestions.

Grant Davies, Paul A. Fishwick, Stephen Ray Martin, and Nikki K. Smith, for testing.

Jon Azen, for first pointing out what a cool program this can be, in the right hands.

Dave Rygmyr, for inspiration.

And last but not least, Sheila, Mickey, Heidi, and Cuddles, for making it all worthwhile.


 ...or her